// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.sell.order.transaction.details;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.SellOrderTransactionDetails;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(SellOrderTransactionDetails.class)
@Setter
@Getter
public class SellOrderTransactionDetailsSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "SellOrderTransactionDetails".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    map.put("parentSellOrder", "so");
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();

    return map;
  }

  /**
   * 所属销售订单
   */
  private Long parentSellOrder;

  /**
   * 所属销售订单 比较(eq)
   */
  private Long parentSellOrderEq;
  /**
   * 所属销售订单 比较(neq)
   */
  private Long parentSellOrderNeq;
  /**
   * 所属销售订单 比较(gt)
   */
  private Long parentSellOrderGt;
  /**
   * 所属销售订单 比较(gte)
   */
  private Long parentSellOrderGte;
  /**
   * 所属销售订单 比较(lt)
   */
  private Long parentSellOrderLt;
  /**
   * 所属销售订单 比较(lte)
   */
  private Long parentSellOrderLte;
  /**
   * 所属销售订单 比较(contains)
   */
  private Long parentSellOrderContains;
  /**
   * 所属销售订单 比较(notcontains)
   */
  private Long parentSellOrderNotcontains;
  /**
   * 所属销售订单 比较(startswith)
   */
  private Long parentSellOrderStartswith;
  /**
   * 所属销售订单 比较(endswith)
   */
  private Long parentSellOrderEndswith;
  /**
   * 所属销售订单 比较(isnull)
   */
  private Boolean parentSellOrderIsnull;
  /**
   * 所属销售订单 比较(isnotnull)
   */
  private Boolean parentSellOrderIsnotnull;
  /**
   * 所属销售订单的订单号 比较(eq)
   */
  private String parentSellOrderAmazonOrderIdEq;
  /**
   * 所属销售订单的订单号 比较(neq)
   */
  private String parentSellOrderAmazonOrderIdNeq;
  /**
   * 所属销售订单的订单号 比较(gt)
   */
  private String parentSellOrderAmazonOrderIdGt;
  /**
   * 所属销售订单的订单号 比较(gte)
   */
  private String parentSellOrderAmazonOrderIdGte;
  /**
   * 所属销售订单的订单号 比较(lt)
   */
  private String parentSellOrderAmazonOrderIdLt;
  /**
   * 所属销售订单的订单号 比较(lte)
   */
  private String parentSellOrderAmazonOrderIdLte;
  /**
   * 所属销售订单的订单号 比较(contains)
   */
  private String parentSellOrderAmazonOrderIdContains;
  /**
   * 所属销售订单的订单号 比较(notcontains)
   */
  private String parentSellOrderAmazonOrderIdNotcontains;
  /**
   * 所属销售订单的订单号 比较(startswith)
   */
  private String parentSellOrderAmazonOrderIdStartswith;
  /**
   * 所属销售订单的订单号 比较(endswith)
   */
  private String parentSellOrderAmazonOrderIdEndswith;
  /**
   * 所属销售订单的订单号 比较(isnull)
   */
  private Boolean parentSellOrderAmazonOrderIdIsnull;
  /**
   * 所属销售订单的订单号 比较(isnotnull)
   */
  private Boolean parentSellOrderAmazonOrderIdIsnotnull;

  /**
   * 所属销售订单(范围搜索)
   */
  private List<Long> parentSellOrderInList;

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 结算编号(模糊搜索)
   */
  private String settlementCode;

  /**
   * 结算编号 比较(eq)
   */
  private String settlementCodeEq;
  /**
   * 结算编号 比较(neq)
   */
  private String settlementCodeNeq;
  /**
   * 结算编号 比较(gt)
   */
  private String settlementCodeGt;
  /**
   * 结算编号 比较(gte)
   */
  private String settlementCodeGte;
  /**
   * 结算编号 比较(lt)
   */
  private String settlementCodeLt;
  /**
   * 结算编号 比较(lte)
   */
  private String settlementCodeLte;
  /**
   * 结算编号 比较(contains)
   */
  private String settlementCodeContains;
  /**
   * 结算编号 比较(notcontains)
   */
  private String settlementCodeNotcontains;
  /**
   * 结算编号 比较(startswith)
   */
  private String settlementCodeStartswith;
  /**
   * 结算编号 比较(endswith)
   */
  private String settlementCodeEndswith;
  /**
   * 结算编号 比较(isnull)
   */
  private Boolean settlementCodeIsnull;
  /**
   * 结算编号 比较(isnotnull)
   */
  private Boolean settlementCodeIsnotnull;

  /**
   * 结算编号(精确搜索)
   */
  private List<String> settlementCodeInList;

  /**
   * 最早结算时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date settlementDateStart;

  /**
   * 最晚结算时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date settlementDateEnd;

  /**
   * 结算时间 比较(eq)
   */
  private Date settlementDateEq;
  /**
   * 结算时间 比较(neq)
   */
  private Date settlementDateNeq;
  /**
   * 结算时间 比较(gt)
   */
  private Date settlementDateGt;
  /**
   * 结算时间 比较(gte)
   */
  private Date settlementDateGte;
  /**
   * 结算时间 比较(lt)
   */
  private Date settlementDateLt;
  /**
   * 结算时间 比较(lte)
   */
  private Date settlementDateLte;
  /**
   * 结算时间 比较(contains)
   */
  private Date settlementDateContains;
  /**
   * 结算时间 比较(notcontains)
   */
  private Date settlementDateNotcontains;
  /**
   * 结算时间 比较(startswith)
   */
  private Date settlementDateStartswith;
  /**
   * 结算时间 比较(endswith)
   */
  private Date settlementDateEndswith;
  /**
   * 结算时间 比较(isnull)
   */
  private Boolean settlementDateIsnull;
  /**
   * 结算时间 比较(isnotnull)
   */
  private Boolean settlementDateIsnotnull;

  /**
   * MSKU(模糊搜索)
   */
  private String msku;

  /**
   * MSKU 比较(eq)
   */
  private String mskuEq;
  /**
   * MSKU 比较(neq)
   */
  private String mskuNeq;
  /**
   * MSKU 比较(gt)
   */
  private String mskuGt;
  /**
   * MSKU 比较(gte)
   */
  private String mskuGte;
  /**
   * MSKU 比较(lt)
   */
  private String mskuLt;
  /**
   * MSKU 比较(lte)
   */
  private String mskuLte;
  /**
   * MSKU 比较(contains)
   */
  private String mskuContains;
  /**
   * MSKU 比较(notcontains)
   */
  private String mskuNotcontains;
  /**
   * MSKU 比较(startswith)
   */
  private String mskuStartswith;
  /**
   * MSKU 比较(endswith)
   */
  private String mskuEndswith;
  /**
   * MSKU 比较(isnull)
   */
  private Boolean mskuIsnull;
  /**
   * MSKU 比较(isnotnull)
   */
  private Boolean mskuIsnotnull;

  /**
   * MSKU(精确搜索)
   */
  private List<String> mskuInList;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * SKU(模糊搜索)
   */
  private String sku;

  /**
   * SKU 比较(eq)
   */
  private String skuEq;
  /**
   * SKU 比较(neq)
   */
  private String skuNeq;
  /**
   * SKU 比较(gt)
   */
  private String skuGt;
  /**
   * SKU 比较(gte)
   */
  private String skuGte;
  /**
   * SKU 比较(lt)
   */
  private String skuLt;
  /**
   * SKU 比较(lte)
   */
  private String skuLte;
  /**
   * SKU 比较(contains)
   */
  private String skuContains;
  /**
   * SKU 比较(notcontains)
   */
  private String skuNotcontains;
  /**
   * SKU 比较(startswith)
   */
  private String skuStartswith;
  /**
   * SKU 比较(endswith)
   */
  private String skuEndswith;
  /**
   * SKU 比较(isnull)
   */
  private Boolean skuIsnull;
  /**
   * SKU 比较(isnotnull)
   */
  private Boolean skuIsnotnull;

  /**
   * SKU(精确搜索)
   */
  private List<String> skuInList;

  /**
   * 数量
   */
  private Integer quantity;

  /**
   * 最小数量
   */
  private Integer quantityMin;

  /**
   * 最大数量
   */
  private Integer quantityMax;

  /**
   * 数量 比较(eq)
   */
  private Integer quantityEq;
  /**
   * 数量 比较(neq)
   */
  private Integer quantityNeq;
  /**
   * 数量 比较(gt)
   */
  private Integer quantityGt;
  /**
   * 数量 比较(gte)
   */
  private Integer quantityGte;
  /**
   * 数量 比较(lt)
   */
  private Integer quantityLt;
  /**
   * 数量 比较(lte)
   */
  private Integer quantityLte;
  /**
   * 数量 比较(contains)
   */
  private Integer quantityContains;
  /**
   * 数量 比较(notcontains)
   */
  private Integer quantityNotcontains;
  /**
   * 数量 比较(startswith)
   */
  private Integer quantityStartswith;
  /**
   * 数量 比较(endswith)
   */
  private Integer quantityEndswith;
  /**
   * 数量 比较(isnull)
   */
  private Boolean quantityIsnull;
  /**
   * 数量 比较(isnotnull)
   */
  private Boolean quantityIsnotnull;

  /**
   * 来源(模糊搜索)
   */
  private String infoSource;

  /**
   * 来源 比较(eq)
   */
  private String infoSourceEq;
  /**
   * 来源 比较(neq)
   */
  private String infoSourceNeq;
  /**
   * 来源 比较(gt)
   */
  private String infoSourceGt;
  /**
   * 来源 比较(gte)
   */
  private String infoSourceGte;
  /**
   * 来源 比较(lt)
   */
  private String infoSourceLt;
  /**
   * 来源 比较(lte)
   */
  private String infoSourceLte;
  /**
   * 来源 比较(contains)
   */
  private String infoSourceContains;
  /**
   * 来源 比较(notcontains)
   */
  private String infoSourceNotcontains;
  /**
   * 来源 比较(startswith)
   */
  private String infoSourceStartswith;
  /**
   * 来源 比较(endswith)
   */
  private String infoSourceEndswith;
  /**
   * 来源 比较(isnull)
   */
  private Boolean infoSourceIsnull;
  /**
   * 来源 比较(isnotnull)
   */
  private Boolean infoSourceIsnotnull;

  /**
   * 来源(精确搜索)
   */
  private List<String> infoSourceInList;

  /**
   * 金额
   */
  private java.math.BigDecimal money;

  /**
   * 最小金额
   */
  private java.math.BigDecimal moneyMin;

  /**
   * 最大金额
   */
  private java.math.BigDecimal moneyMax;

  /**
   * 金额 比较(eq)
   */
  private java.math.BigDecimal moneyEq;
  /**
   * 金额 比较(neq)
   */
  private java.math.BigDecimal moneyNeq;
  /**
   * 金额 比较(gt)
   */
  private java.math.BigDecimal moneyGt;
  /**
   * 金额 比较(gte)
   */
  private java.math.BigDecimal moneyGte;
  /**
   * 金额 比较(lt)
   */
  private java.math.BigDecimal moneyLt;
  /**
   * 金额 比较(lte)
   */
  private java.math.BigDecimal moneyLte;
  /**
   * 金额 比较(contains)
   */
  private java.math.BigDecimal moneyContains;
  /**
   * 金额 比较(notcontains)
   */
  private java.math.BigDecimal moneyNotcontains;
  /**
   * 金额 比较(startswith)
   */
  private java.math.BigDecimal moneyStartswith;
  /**
   * 金额 比较(endswith)
   */
  private java.math.BigDecimal moneyEndswith;
  /**
   * 金额 比较(isnull)
   */
  private Boolean moneyIsnull;
  /**
   * 金额 比较(isnotnull)
   */
  private Boolean moneyIsnotnull;

  /**
   * 最早回款时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date returnDateStart;

  /**
   * 最晚回款时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date returnDateEnd;

  /**
   * 回款时间 比较(eq)
   */
  private Date returnDateEq;
  /**
   * 回款时间 比较(neq)
   */
  private Date returnDateNeq;
  /**
   * 回款时间 比较(gt)
   */
  private Date returnDateGt;
  /**
   * 回款时间 比较(gte)
   */
  private Date returnDateGte;
  /**
   * 回款时间 比较(lt)
   */
  private Date returnDateLt;
  /**
   * 回款时间 比较(lte)
   */
  private Date returnDateLte;
  /**
   * 回款时间 比较(contains)
   */
  private Date returnDateContains;
  /**
   * 回款时间 比较(notcontains)
   */
  private Date returnDateNotcontains;
  /**
   * 回款时间 比较(startswith)
   */
  private Date returnDateStartswith;
  /**
   * 回款时间 比较(endswith)
   */
  private Date returnDateEndswith;
  /**
   * 回款时间 比较(isnull)
   */
  private Boolean returnDateIsnull;
  /**
   * 回款时间 比较(isnotnull)
   */
  private Boolean returnDateIsnotnull;

  /**
   * 币种
   */
  private String currency;

  /**
   * 币种 比较(eq)
   */
  private String currencyEq;
  /**
   * 币种 比较(neq)
   */
  private String currencyNeq;
  /**
   * 币种 比较(gt)
   */
  private String currencyGt;
  /**
   * 币种 比较(gte)
   */
  private String currencyGte;
  /**
   * 币种 比较(lt)
   */
  private String currencyLt;
  /**
   * 币种 比较(lte)
   */
  private String currencyLte;
  /**
   * 币种 比较(contains)
   */
  private String currencyContains;
  /**
   * 币种 比较(notcontains)
   */
  private String currencyNotcontains;
  /**
   * 币种 比较(startswith)
   */
  private String currencyStartswith;
  /**
   * 币种 比较(endswith)
   */
  private String currencyEndswith;
  /**
   * 币种 比较(isnull)
   */
  private Boolean currencyIsnull;
  /**
   * 币种 比较(isnotnull)
   */
  private Boolean currencyIsnotnull;

  /**
   * 币种(精确搜索)
   */
  private List<String> currencyInList;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
